package com.cskaoyan.javse.oop2._1extends._4hierarchy;
/**
 * 继承层次
 * 首先思考一个问题:
 *      Java代码中能不能直接使用extends关键字,直接继承多个类呢?
 * 显然这是不行的,在java中一个类只能直接通过extends关键字继承一个类,这个类称之为它的"直接父类"
 * 这种只有一个直接父类的语法设计,称之为"单重继承"或者"单继承"
 * 相反,如果一个类可以直接有多个直接父类,称之为"多重继承"或者"多继承",典型的就是C++
 *
 * 一个类虽然只能有一个直接父类,但是它就只有一个父类呢?
 *      不是,一个类可以允许有多个间接父类,"爸爸的爸爸/爷爷"
 *
 * 在java中如果直接定义一个类, 没有用extends关键字,继承某个类,那么它的直接父类,就是Object类
 * java中所有的类,都直接或间接的继承了Object,都继承了它的成员
 * 当然没有必要写出它的继承,这是一个隐式的基础
 *
 * 1. 祖先类：处在继承顶层的类。在java中,最顶层的是Object.
 * 2. 继承层次（hierarchy）：由某个祖先类派生出来的所有类的集合叫做继承层次。
 * 3. 继承链：从某一个子类开始，到其祖先类的路径。
 *
 *
 * 
 * @since 16:03
 * @author wuguidong@cskaoyan.onaliyun.com
 */
// Class 'Demo' explicitly extends 'java.lang.Object'
public class Demo {
    public static void main(String[] args) {
        Dog d = new Dog();
        // d.hashCode()
    }

}
class Animal{
}
// Class cannot extend multiple classes
class Dog extends Animal{

}
